Many operations in fields such as image processing and audio processing can typically be described based on an interactive user interface control that maps an input value either directly to an output value or to some other parameter that will then affect the processing. For example, such controls can allow users to interactively adjust function curves such as tone curves and hue-based curves for image processing, and frequency-response curves for audio processing. In the case of tone curves, an image component value for each pixel is typically fed into the function and a resulting new component value is produced by the function. In the case of hue-based curves, the hue of each pixel is fed into the function and a resulting parameter value is produced to be used in further processing of the pixel. For example, one might use hue to control how much lighter or darker to make a pixel. Finally, given an input audio frequency, a frequency-response curve provides an indication of the amount of gain or cut to be applied to that portion of the audio spectrum.
As single input, single output functions, these functions can be described by the corresponding curve that is plotted by mapping all input values to their corresponding output values. Typical image manipulation applications allow users to specify curves directly by specifying a series of points that the curve must pass through. Specifying curves via points, however, makes it easy to produce curves with undesirable properties. For example, for an image tone curve, clipping against the extremes of the range will generally result in a loss of detail and retrograde motion—i.e., decreasing sections of the curve—will result in solarization effects. Some applications avoid this predicament by allowing users to manipulate curves through a small set of controls for continuous, bounded parameters. Such curves are termed parametric curves. While a point-based curve is essentially specifying parameters to a curve generating process, with a parametric curve the parameters are abstracted away from being simply locations along the function graph. But the abstracted nature of the parameters can make it harder for users to understand how they in fact relate to the curve.